package tools.tree;

import java.util.ArrayList;

public class InternalTree {

//	private InternalTreeNode root;
	private ArrayList<InternalTreeNode> nodes;
	private boolean hasRoot;
	
	public InternalTree(){
		nodes=new ArrayList<InternalTreeNode>();
		hasRoot=false;
//		root=new InternalTreeNode(null,0);
//		nodes.add(root);
	}
	
	public boolean addNode(InternalTreeNode node){
		if(node.getParent()==null&&!hasRoot){
			nodes.add(node);
			hasRoot=true;
			return true;
		}else if(nodes.contains(node.getParent())){
			node.getParent().addChild(node);
			nodes.add(node);
			return true;
		}else{
			return false;
		}
	}
	
	public InternalTreeNode getRoot(){
		for (InternalTreeNode node : nodes) {
			if(node.getParent()==null){
				return node;
			}
		}
		return null;
	}
	
//	public InternalTreeNode getRoot(){
//		return root;
//	}
	
	public void reRoot(InternalTreeNode newRoot){
		
	}
	public String toString(){
		return getRoot().toString();
	}
}
